# Makefile for uClibc
#
# Copyright (C) 2002-2003  NEC Electronics Corporation
# Copyright (C) 2002-2003  Miles Bader <miles@gnu.org>
# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
#
# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
#

CSRC:=	malloc.c calloc.c free.c realloc.c memalign.c \
	heap_alloc.c heap_alloc_at.c heap_free.c

# Turn on malloc debugging if requested
ifeq ($(UCLIBC_MALLOC_DEBUGGING),y)
CSRC+=malloc_debug.c heap_debug.c
CFLAGS+=-DMALLOC_DEBUGGING -DHEAP_DEBUGGING
ifeq ($(UCLIBC_UCLINUX_BROKEN_MUNMAP),y)
CFLAGS+=-DMALLOC_MMB_DEBUGGING
endif
endif

STDLIB_MALLOC_DIR:=$(top_srcdir)libc/stdlib/malloc
STDLIB_MALLOC_OUT:=$(top_builddir)libc/stdlib/malloc

STDLIB_MALLOC_SRC:=$(patsubst %.c,$(STDLIB_MALLOC_DIR)/%.c,$(CSRC))
STDLIB_MALLOC_OBJ:=$(patsubst %.c,$(STDLIB_MALLOC_OUT)/%.o,$(CSRC))

libc-a-$(MALLOC)+=$(STDLIB_MALLOC_OBJ)
libc-so-$(MALLOC)+=$(STDLIB_MALLOC_OBJ:.o=.os)

libc-multi-$(MALLOC)+=$(STDLIB_MALLOC_SRC)

objclean-y+=stdlib_malloc_objclean

stdlib_malloc_objclean:
	$(RM) $(STDLIB_MALLOC_OUT)/*.{o,os}

malloc.o free.o realloc.o memalign.o: malloc.h
# Depend on uClinux_config.h to cache changes in __UCLIBC_MALLOC_DEBUGGING__
$(STDLIB_MALLOC_OBJ): $(top_builddir)include/bits/uClibc_config.h
